package ui;

import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;

import control.GestionListaDePrecios;
import dominio.Reporte;
import dominio.ReporteCotizacion;
import dominio.ReporteManoDeObra;

@SuppressWarnings("serial")
public class IngresarClienteUI extends JDialog {

	private JPanel contentPane;
	private JTextField JTextFieldCliente;
	private String cliente;
	private GestionListaDePrecios control;
	private Reporte reporte;
	private int bandera;

	/**
	 * Create the frame.
	 */
	public IngresarClienteUI(GestionListaDePrecios control, Reporte reporte, int bandera) {
		this.control = control;
		this.reporte = reporte;
		this.bandera = bandera;
//		setBounds(100, 100, 360, 190);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(10, 10, 10, 10));
		contentPane.setLayout(null);
		setContentPane(contentPane);
		
		JLabel lblIngreseElNombre = new JLabel("Ingrese el nombre del cliente:");
		lblIngreseElNombre.setHorizontalAlignment(SwingConstants.CENTER);
		lblIngreseElNombre.setBounds(30, 20, 300, 25);
		lblIngreseElNombre.setFont(new Font("Dialog", Font.BOLD, 16));
		contentPane.add(lblIngreseElNombre);
		
		JTextFieldCliente = new JTextField();
		JTextFieldCliente.setBounds(30, 60, 300, 25);
		JTextFieldCliente.setForeground(Color.DARK_GRAY);
		JTextFieldCliente.setFont(new Font("Dialog", Font.PLAIN, 18));
		contentPane.add(JTextFieldCliente);
		JTextFieldCliente.setColumns(10);
		JTextFieldCliente.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
            	aceptarActionPerformed();
            }
        });
		
		JButton btnCancelar = new JButton("Cancelar");
		btnCancelar.setBounds(30, 110, 100, 25);
		contentPane.add(btnCancelar);
		
		btnCancelar.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
            	dispose();
            }
        });
		btnCancelar.addKeyListener(new KeyListener() {                    
            public void keyTyped(KeyEvent arg0) {
            	// TODO Auto-generated method stub                              
            }
           
            public void keyReleased(KeyEvent arg0) {
            	// TODO Auto-generated method stub                              
            }
           
            public void keyPressed(KeyEvent arg0) {
                if(arg0.getKeyCode()==KeyEvent.VK_ENTER) {
                	dispose();
                }
            }
		});
		
		JButton btnAceptar = new JButton("Aceptar");
		btnAceptar.setBounds(230, 110, 100, 25);
		contentPane.add(btnAceptar);
		
		btnAceptar.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
            	aceptarActionPerformed();
            }
        });
		btnAceptar.addKeyListener(new KeyListener() {                    
            public void keyTyped(KeyEvent arg0) {
            	// TODO Auto-generated method stub                              
            }
           
            public void keyReleased(KeyEvent arg0) {
            	// TODO Auto-generated method stub                              
            }
           
            public void keyPressed(KeyEvent arg0) {
                if(arg0.getKeyCode()==KeyEvent.VK_ENTER) {
                	aceptarActionPerformed();
                }
            }
        });
	}
	
	private void aceptarActionPerformed() {
		cliente = JTextFieldCliente.getText().trim().toUpperCase();
		if(!cliente.isEmpty())
			reporte.setCliente(cliente);
		else
			reporte.setCliente("-");
		
		switch (bandera) {
			case 1:
				control.generarReporteRepuestos((ReporteCotizacion) reporte);
				break;
			case 2:
				control.generarReporteCilindro((ReporteManoDeObra) reporte);
				break;
			case 3:
				control.generarReporteBlock((ReporteManoDeObra) reporte);
				break;
		}
		dispose();
	}
}
